<!DOCTYPE html>
<html class="client-nojs skin-theme-clientpref-os citizen-feature-autohide-navigation-clientpref-1 citizen-feature-image-dimming-clientpref-0 citizen-feature-pure-black-clientpref-0 citizen-feature-custom-font-size-clientpref-standard citizen-feature-custom-width-clientpref-standard citizen-feature-performance-mode-clientpref-1 citizen-header-position-left citizen-header-position-mobile-bottom" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Packet</title>
<script id="mwoffliner-jsConfigVars">
document.documentElement.classList.replace('client-nojs', 'client-js')
RLCONF = {"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Packet","wgTitle":"Packet","wgCurRevisionId":3290,"wgRevisionId":0,"wgArticleId":101,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Concepts"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Packet","wgRelevantArticleId":101,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"all","wgConfirmEditCaptchaNeededForGenericEdit":false,"wgMFDisplayWikibaseDescriptions":{"search":false,"nearby":false,"watchlist":false,"tagline":false},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"zimRelativeFilePath":"./"}
RLSTATE = {"user.options":"loading","site.styles":"ready","noscript":"ready","skins.citizen.styles":"ready","skins.citizen.codex.styles":"ready","skins.citizen.icons":"ready","ext.PortableInfobox.styles":"ready","jquery.makeCollapsible.styles":"ready"}
RLPAGEMODULES = ["jquery","mediawiki.base","mediawiki.page.ready","jquery.makeCollapsible"]
;(RLQ = window.RLQ || []).push(function () {
mw.config.set(RLCONF)
mw.loader.state(RLSTATE)
mw.loader.load(RLPAGEMODULES)
;(mw.loader.impl || mw.loader.implement)(function () {
return [
'user.options@12s5i',
function ($, jQuery, require, module) {
mw.user.tokens.set({ patrolToken: '+\\', watchToken: '+\\', csrfToken: '+\\' })
},
]
})
})
</script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://reticulum.miraheze.org/wiki/Packet"> <link href="./_mw_/ext.PortableInfobox.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/jquery.makeCollapsible.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.citizen.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.citizen.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.citizen.styles.css" rel="stylesheet" type="text/css"> <script async="" src="./_mw_/startup.js"></script>
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<noscript><link href="./_mw_/noscript.css" rel="stylesheet" type="text/css"/></noscript>
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<script src="./_res_/script.js"></script>
</head>
<body class="mwoffliner-fallback mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Packet rootpage-Packet skin-citizen action-view skin--responsive">
<div id="content" class="mw-body" role="main">
<a id="top"></a>
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Packet</span></h1>
<div id="bodyContent">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><dl><dd>Manual: <span class="manual-link" title="Manual:Wire Format"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/understanding.html#wire-format">Wire Format</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/understanding.md|anchor=wire-format Wire Format]</span></span></span></dd></dl>
<p class="mw-empty-elt"></p><aside class="portable-infobox noexcerpt searchaux pi-background pi-theme-default pi-layout-default"><h2 class="pi-item pi-item-spacing pi-title" data-source="title">Packet</h2><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="source">
<h3 class="pi-data-label pi-secondary-font">Source</h3>
<div class="pi-data-value pi-font"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://github.com/markqvist/reticulum/blob/HEAD/RNS/Packet.py">Packet.py</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=RNS/Packet.py Packet.py]</span></span></div>
</div><div class="pi-item pi-data pi-item-spacing pi-border-color" data-source="api">
<h3 class="pi-data-label pi-secondary-font">API</h3>
<div class="pi-data-value pi-font"><span class="manual-link" title="Manual:RNS.Packet"><span class="mirror link"><span class="web"><a rel="nofollow" class="external text" href="https://reticulum.network/manual/reference.html#RNS.Packet">RNS.Packet</a></span><span class="nomadnet">[nomadnetwork://a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/reference.md|anchor=RNS.Packet RNS.Packet]</span></span></span></div>
</div></aside>
<p class="mw-empty-elt"></p><p>A <b>packet</b> is <a href="Reticulum_Protocol" title="Reticulum Protocol">Reticulum</a>'s unit of data.
</p><p>It is always created with an associated <a href="Destination" title="Destination">destination</a> and some payload data. The <a href="https://en.wikipedia.org/wiki/Maximum_transmission_unit" class="extiw external" title="wikipedia:Maximum transmission unit">MTU</a> is 500 bytes.
</p><p>There are four packet types:
</p>
<ul><li>Data</li>
<li><a href="Announce" title="Announce">Announce</a> (see <a class="mw-selflink-fragment" href="#Announce_packet">Announce packet</a> below)</li>
<li><a href="Link" title="Link">Link</a> request</li>
<li>Proof of delivery</li></ul>
<p>As well as a number of context types.
</p>
<div class="mw-heading mw-heading2"><h2 id="Announce_packet">Announce packet</h2></div>
<p><i><b>Note:</b> The following information may be out of date. To be confirmed.</i>
</p><p>Headers as typical.
</p>
<table class="wikitable">
<tbody><tr>
<th>Field
</th>
<th>Size
</th>
<th>Content
</th></tr>
<tr>
<td>Public key
</td>
<td>32
</td>
<td>Identity’s public encryption key
</td></tr>
<tr>
<td>Signing key
</td>
<td>32
</td>
<td>Identity’s public signing key
</td></tr>
<tr>
<td>Name hash
</td>
<td>10
</td>
<td>Full hash of expanded name
</td></tr>
<tr>
<td>Random hash
</td>
<td>10
</td>
<td>Random hash [5 bytes] + time [5 bytes]
</td></tr>
<tr>
<td>Ratchet
</td>
<td>32
</td>
<td>Ed25519 ratchet hash
</td></tr>
<tr>
<td>Signature
</td>
<td>64
</td>
<td>Ed25519 signature of signed data
</td></tr>
<tr>
<td>Application data
</td>
<td>0 - 285 (varies)
</td>
<td>String or MessagePack data
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Public_key">Public key</h3></div>
<p>x25519 public key for encryption/decryption and creation of shared secrets.
</p>
<div class="mw-heading mw-heading3"><h3 id="Signing_key">Signing key</h3></div>
<p>Ed25519 public key used for signing, including the <i>announce</i>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Name_hash">Name hash</h3></div>
<p>SHA-256 hash of full name, truncated to 10 bytes. Full name consists of the <code>app_name</code> and aspect(s), separated by a period. Example: <code>lxmf.delivery</code>. This is the raw bytes without any string terminator or similar additional bytes.
</p>
<div class="mw-heading mw-heading3"><h3 id="Random_hash">Random hash</h3></div>
<p>5 random bytes concatenated with a 5-byte <a href="https://en.wikipedia.org/wiki/Unix_time" class="extiw external" title="wikipedia:Unix time">Unix timestamp</a> in big-endian. The random bytes are used to detect replayed announces.
</p>
<div class="mw-heading mw-heading3"><h3 id="Ratchet">Ratchet</h3></div>
<p>Section incomplete.
</p>
<div class="mw-heading mw-heading3"><h3 id="Signature">Signature</h3></div>
<p>Signed data consists of the destination hash, public keys, name hash, random hash, and (if applicable) <code>app_data</code>. Signed using Ed25519 signing key.
</p>
<div class="mw-heading mw-heading3"><h3 id="Application_data">Application data</h3></div>
<p>Legacy <i>application data</i> for <i>peers</i> and <i>nodes</i> is a string with the friendly name. Modern <i>announces</i> use a MessagePack'd array that contains the name as an array of bytes and the ticket cost, if any.
</p>
<table class="wikitable">
<tbody><tr>
<th>Field
</th>
<th>Type
</th>
<th>Use
</th></tr>
<tr>
<td>0
</td>
<td>Array
</td>
<td>Friendly name
</td></tr>
<tr>
<td>1
</td>
<td>Byte
</td>
<td>Ticket value
</td></tr></tbody></table>
<p>Application data for propagation nodes is a MessagePack'd list.
</p>
<table class="wikitable">
<tbody><tr>
<th>Field
</th>
<th>Type
</th>
<th>Use
</th></tr>
<tr>
<td>0
</td>
<td>Bool
</td>
<td>Enable/disable peer (?)
</td></tr>
<tr>
<td>1
</td>
<td>Int32
</td>
<td>Timestamp
</td></tr>
<tr>
<td>2
</td>
<td>Int16
</td>
<td>Max transfer size, kB
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Notes">Notes</h3></div>
<p>Maximum specified <i>application data</i> length on wire is 465 bytes. A type 2 header with 180 bytes of fixed data limits the <i>application data</i> in an announce to 285 bytes; it is good practice to keep this data as small as possible due to transmission to all stations, including LoRa and RF equipped nodes. Given the limited memory on MCUs, this may be application limited.
</p><p>The destination hash can be determined by concatenating the <i>name hash</i> and <i>identity hash</i> (which, in turn, is the SHA hash of the x25519 + Ed25519 public keys, truncated to 16 bits). This allows for full verification of the <i>name</i> and <i>destination</i> hashes.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Link" title="Link">Link</a></li>
<li><a href="Channel" title="Channel">Channel</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r3053">
/* start https://reticulum.miraheze.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://reticulum.miraheze.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r3049">
/* start https://reticulum.miraheze.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox{border:1px solid #6a747f}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-subgroup{background-color:#050505}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-list{border-color:#050505}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-abovebelow,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-group,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-image,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-list{border-top:2px solid #050505}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-title{background-color:#00006b}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-abovebelow,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-group,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-title{background-color:#00004d}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-group,html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#00003b}html.skin-theme-clientpref-night:not(.client-darkmode) .mw-parser-output .navbox-even{background-color:#141414}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox{border:1px solid #6a747f}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-subgroup{background-color:#050505}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-list{border-color:#050505}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-abovebelow,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-group,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-image,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output tr+tr>.navbox-list{border-top:2px solid #050505}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-title{background-color:#00006b}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-abovebelow,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-group,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-title{background-color:#00004d}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-group,html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#00003b}html.skin-theme-clientpref-os:not(.client-darkmode) .mw-parser-output .navbox-even{background-color:#141414}}
/* end https://reticulum.miraheze.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Reticulum_concepts" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r3051">
/* start https://reticulum.miraheze.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}
/* end https://reticulum.miraheze.org/ */
</style><div id="Reticulum_concepts" style="font-size:114%;margin:0 4em"><a href="Reticulum_Protocol" title="Reticulum Protocol">Reticulum</a> concepts</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Announce" title="Announce">Announce</a></li>
<li><a href="Blackhole" title="Blackhole">Blackhole</a></li>
<li><a href="Buffer" title="Buffer">Buffer</a></li>
<li><a href="Channel" title="Channel">Channel</a></li>
<li><a href="Destination" title="Destination">Destination</a></li>
<li><a href="Discovery" title="Discovery">Discovery</a></li>
<li><a href="Identity" title="Identity">Identity</a></li>
<li><a href="Instance" title="Instance">Instance</a></li>
<li><a href="Interface" title="Interface">Interface</a></li>
<li><a href="Interface_Access_Code" title="Interface Access Code">Interface Access Code</a> (IFAC)</li>
<li><a href="Link" title="Link">Link</a></li>
<li><a href="Network_identity" title="Network identity">Network identity</a></li>
<li><a href="Node" title="Node">Node</a></li>
<li><a class="mw-selflink selflink">Packet</a></li>
<li><a href="Path" title="Path">Path</a></li>
<li><a href="Propagation_node" title="Propagation node">Propagation node</a></li>
<li><a href="Resource" title="Resource">Resource</a></li>
<li><a href="Stamp" title="Stamp">Stamp</a></li>
<li><a href="Transport_node" title="Transport node">Transport node</a></li></ul>
</div></td></tr></tbody></table></div></div><div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks">Category: <ul><li><a href="Category%3AConcepts" title="Category:Concepts">Concepts</a></li></ul></div></div><!--htdig_noindex--><div><div class="zim-footer">
This page is issued from <a class="external text" title="Last edited on 2026-08-22" href="https://reticulum.miraheze.org/wiki/?title=Packet&oldid=3290">Reticulum Community Wiki</a>. The text is available under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</div>
</body></html>